Grammar

    0 $accept: lexfile $end

    1 lexfile: auxiliary_section translation_section
    2        | %empty

    3 auxiliary_section: auxiliaries '%' '%'
    4                  | '%' '%'

    5 auxiliaries: auxiliaries auxiliary
    6            | auxiliary

    7 auxiliary: namedef '=' regexp ';'
    8          | '%' '{'

    9 namedef: TOKEN_NAME

   10 regexp: TOKEN_CCLASS
   11       | TOKEN_STRING
   12       | TOKEN_NAME
   13       | regexp '*'
   14       | regexp '|' regexp
   15       | regexp regexp
   16       | '(' regexp ')'

   17 translation_section: translations
   18                    | %empty

   19 translations: translations translation
   20             | llactr translation

   21 llactr: %empty

   22 translation: pattern action
   23            | '%' '{'
   24            | '%' '%'

   25 action: '{'

   26 pattern: regexp '/' regexp
   27        | regexp


Terminals, with rules where they appear

$end (0) 0
'%' (37) 3 4 8 23 24
'(' (40) 16
')' (41) 16
'*' (42) 13
'/' (47) 26
';' (59) 7
'=' (61) 7
'{' (123) 8 23 25
'|' (124) 14
error (256)
TOKEN_NAME (258) 9 12
TOKEN_CCLASS (259) 10
TOKEN_STRING (260) 11
TOKEN_CONCAT (261)


Nonterminals, with rules where they appear

$accept (16)
    on left: 0
lexfile (17)
    on left: 1 2, on right: 0
auxiliary_section (18)
    on left: 3 4, on right: 1
auxiliaries (19)
    on left: 5 6, on right: 3 5
auxiliary (20)
    on left: 7 8, on right: 5 6
namedef (21)
    on left: 9, on right: 7
regexp (22)
    on left: 10 11 12 13 14 15 16, on right: 7 13 14 15 16 26 27
translation_section (23)
    on left: 17 18, on right: 1
translations (24)
    on left: 19 20, on right: 17 19
llactr (25)
    on left: 21, on right: 20
translation (26)
    on left: 22 23 24, on right: 19 20
action (27)
    on left: 25, on right: 22
pattern (28)
    on left: 26 27, on right: 22


State 0

    0 $accept: . lexfile $end

    TOKEN_NAME  shift, and go to state 1
    '%'         shift, and go to state 2

    $default  reduce using rule 2 (lexfile)

    lexfile            go to state 3
    auxiliary_section  go to state 4
    auxiliaries        go to state 5
    auxiliary          go to state 6
    namedef            go to state 7


State 1

    9 namedef: TOKEN_NAME .

    $default  reduce using rule 9 (namedef)


State 2

    4 auxiliary_section: '%' . '%'
    8 auxiliary: '%' . '{'

    '%'  shift, and go to state 8
    '{'  shift, and go to state 9


State 3

    0 $accept: lexfile . $end

    $end  shift, and go to state 10


State 4

    1 lexfile: auxiliary_section . translation_section

    $end      reduce using rule 18 (translation_section)
    $default  reduce using rule 21 (llactr)

    translation_section  go to state 11
    translations         go to state 12
    llactr               go to state 13


State 5

    3 auxiliary_section: auxiliaries . '%' '%'
    5 auxiliaries: auxiliaries . auxiliary

    TOKEN_NAME  shift, and go to state 1
    '%'         shift, and go to state 14

    auxiliary  go to state 15
    namedef    go to state 7


State 6

    6 auxiliaries: auxiliary .

    $default  reduce using rule 6 (auxiliaries)


State 7

    7 auxiliary: namedef . '=' regexp ';'

    '='  shift, and go to state 16


State 8

    4 auxiliary_section: '%' '%' .

    $default  reduce using rule 4 (auxiliary_section)


State 9

    8 auxiliary: '%' '{' .

    $default  reduce using rule 8 (auxiliary)


State 10

    0 $accept: lexfile $end .

    $default  accept


State 11

    1 lexfile: auxiliary_section translation_section .

    $default  reduce using rule 1 (lexfile)


State 12

   17 translation_section: translations .
   19 translations: translations . translation

    TOKEN_NAME    shift, and go to state 17
    TOKEN_CCLASS  shift, and go to state 18
    TOKEN_STRING  shift, and go to state 19
    '('           shift, and go to state 20
    '%'           shift, and go to state 21

    $default  reduce using rule 17 (translation_section)

    regexp       go to state 22
    translation  go to state 23
    pattern      go to state 24


State 13

   20 translations: llactr . translation

    TOKEN_NAME    shift, and go to state 17
    TOKEN_CCLASS  shift, and go to state 18
    TOKEN_STRING  shift, and go to state 19
    '('           shift, and go to state 20
    '%'           shift, and go to state 21

    regexp       go to state 22
    translation  go to state 25
    pattern      go to state 24


State 14

    3 auxiliary_section: auxiliaries '%' . '%'
    8 auxiliary: '%' . '{'

    '%'  shift, and go to state 26
    '{'  shift, and go to state 9


State 15

    5 auxiliaries: auxiliaries auxiliary .

    $default  reduce using rule 5 (auxiliaries)


State 16

    7 auxiliary: namedef '=' . regexp ';'

    TOKEN_NAME    shift, and go to state 17
    TOKEN_CCLASS  shift, and go to state 18
    TOKEN_STRING  shift, and go to state 19
    '('           shift, and go to state 20

    regexp  go to state 27


State 17

   12 regexp: TOKEN_NAME .

    $default  reduce using rule 12 (regexp)


State 18

   10 regexp: TOKEN_CCLASS .

    $default  reduce using rule 10 (regexp)


State 19

   11 regexp: TOKEN_STRING .

    $default  reduce using rule 11 (regexp)


State 20

   16 regexp: '(' . regexp ')'

    TOKEN_NAME    shift, and go to state 17
    TOKEN_CCLASS  shift, and go to state 18
    TOKEN_STRING  shift, and go to state 19
    '('           shift, and go to state 20

    regexp  go to state 28


State 21

   23 translation: '%' . '{'
   24            | '%' . '%'

    '%'  shift, and go to state 29
    '{'  shift, and go to state 30


State 22

   13 regexp: regexp . '*'
   14       | regexp . '|' regexp
   15       | regexp . regexp
   26 pattern: regexp . '/' regexp
   27        | regexp .

    TOKEN_NAME    shift, and go to state 17
    TOKEN_CCLASS  shift, and go to state 18
    TOKEN_STRING  shift, and go to state 19
    '/'           shift, and go to state 31
    '|'           shift, and go to state 32
    '('           shift, and go to state 20
    '*'           shift, and go to state 33

    $default  reduce using rule 27 (pattern)

    regexp  go to state 34


State 23

   19 translations: translations translation .

    $default  reduce using rule 19 (translations)


State 24

   22 translation: pattern . action

    '{'  shift, and go to state 35

    action  go to state 36


State 25

   20 translations: llactr translation .

    $default  reduce using rule 20 (translations)


State 26

    3 auxiliary_section: auxiliaries '%' '%' .

    $default  reduce using rule 3 (auxiliary_section)


State 27

    7 auxiliary: namedef '=' regexp . ';'
   13 regexp: regexp . '*'
   14       | regexp . '|' regexp
   15       | regexp . regexp

    TOKEN_NAME    shift, and go to state 17
    TOKEN_CCLASS  shift, and go to state 18
    TOKEN_STRING  shift, and go to state 19
    ';'           shift, and go to state 37
    '|'           shift, and go to state 32
    '('           shift, and go to state 20
    '*'           shift, and go to state 33

    regexp  go to state 34


State 28

   13 regexp: regexp . '*'
   14       | regexp . '|' regexp
   15       | regexp . regexp
   16       | '(' regexp . ')'

    TOKEN_NAME    shift, and go to state 17
    TOKEN_CCLASS  shift, and go to state 18
    TOKEN_STRING  shift, and go to state 19
    '|'           shift, and go to state 32
    '('           shift, and go to state 20
    '*'           shift, and go to state 33
    ')'           shift, and go to state 38

    regexp  go to state 34


State 29

   24 translation: '%' '%' .

    $default  reduce using rule 24 (translation)


State 30

   23 translation: '%' '{' .

    $default  reduce using rule 23 (translation)


State 31

   26 pattern: regexp '/' . regexp

    TOKEN_NAME    shift, and go to state 17
    TOKEN_CCLASS  shift, and go to state 18
    TOKEN_STRING  shift, and go to state 19
    '('           shift, and go to state 20

    regexp  go to state 39


State 32

   14 regexp: regexp '|' . regexp

    TOKEN_NAME    shift, and go to state 17
    TOKEN_CCLASS  shift, and go to state 18
    TOKEN_STRING  shift, and go to state 19
    '('           shift, and go to state 20

    regexp  go to state 40


State 33

   13 regexp: regexp '*' .

    $default  reduce using rule 13 (regexp)


State 34

   13 regexp: regexp . '*'
   14       | regexp . '|' regexp
   15       | regexp . regexp
   15       | regexp regexp .

    '*'  shift, and go to state 33

    $default  reduce using rule 15 (regexp)

    regexp  go to state 34


State 35

   25 action: '{' .

    $default  reduce using rule 25 (action)


State 36

   22 translation: pattern action .

    $default  reduce using rule 22 (translation)


State 37

    7 auxiliary: namedef '=' regexp ';' .

    $default  reduce using rule 7 (auxiliary)


State 38

   16 regexp: '(' regexp ')' .

    $default  reduce using rule 16 (regexp)


State 39

   13 regexp: regexp . '*'
   14       | regexp . '|' regexp
   15       | regexp . regexp
   26 pattern: regexp '/' regexp .

    TOKEN_NAME    shift, and go to state 17
    TOKEN_CCLASS  shift, and go to state 18
    TOKEN_STRING  shift, and go to state 19
    '|'           shift, and go to state 32
    '('           shift, and go to state 20
    '*'           shift, and go to state 33

    $default  reduce using rule 26 (pattern)

    regexp  go to state 34


State 40

   13 regexp: regexp . '*'
   14       | regexp . '|' regexp
   14       | regexp '|' regexp .
   15       | regexp . regexp

    TOKEN_NAME    shift, and go to state 17
    TOKEN_CCLASS  shift, and go to state 18
    TOKEN_STRING  shift, and go to state 19
    '('           shift, and go to state 20
    '*'           shift, and go to state 33

    $default  reduce using rule 14 (regexp)

    regexp  go to state 34
